package strings;

/**
 * @Author: pengfei.hpf
 * @Date: 2020/1/23
 *
 * 编写一个函数来查找字符串数组中的最长公共前缀。
 *
 * 如果不存在公共前缀，返回空字符串 ""。
 *
 * 示例 1:
 *
 * 输入: ["flower","flow","flight"]
 * 输出: "fl"
 * 示例 2:
 *
 * 输入: ["dog","racecar","car"]
 * 输出: ""
 * 解释: 输入不存在公共前缀。
 * 说明:
 *
 * 所有输入只包含小写字母 a-z 。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/longest-common-prefix
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class LongestCommonPrefix {

    public String longestCommonPrefix(String[] strs) {

        if(strs == null || strs.length == 0){
            return "";
        }
        StringBuilder res = new StringBuilder();
        int i = 0;
        while(true){
            if(strs[0].length() == i){
                return res.toString();
            }
            String s = strs[0].substring(i, i + 1);
            for(int j = 1; j < strs.length; j ++){
                if(strs[j].length() == i){
                    return res.toString();
                }
                String t = strs[j].substring(i, i + 1);
                if(!s.equals(t)){
                    return res.toString();
                }
            }
            res.append(s);
            i ++;
        }

    }

}
